using System;

namespace Curriculum.Business.Clases
{
	/// <summary>
	/// Summary description for Atributo.
	/// </summary>
	public class Atributo
	{
		private string idAtributo;
		private string idTipoDato;
		private int longitud;
		private string nombre;
		private bool opcional;

		public Atributo(){			
		}
		
		public string IdAtributo
		{
			get { return idAtributo; }
			set { idAtributo = value; }
		}

		public string IdTipoDato
		{
			get { return idTipoDato; }
			set { idTipoDato = value; }
		}

		public int Longitud
		{
			get { return longitud; }
			set { longitud = value; }
		}

		public string Nombre
		{
			get { return nombre; }
			set { nombre = value; }
		}

		public bool Opcional
		{
			get { return opcional; }
			set { opcional = value; }
		}
		internal Atributo(	string idAtributo,
			string idTipoDato,
			int longitud,
			string nombre,
			bool opcional)
		{
			this.idAtributo = idAtributo;
			this.idTipoDato = idTipoDato;
			this.longitud = longitud;
			this.nombre = nombre;
			this.opcional = opcional;
		}
		
		public string GetIdAtributo(){return this.idAtributo;}
		public string GetIdTipoDato(){return this.idTipoDato;}
		public int GetLongitud(){return this.longitud;}
		public string GetNombre(){return this.nombre;}
		public bool GetEsOpcional(){return this.opcional;}

		public override bool Equals(object obj)
		{
			bool iguales = true;
			Atributo atributo = (Atributo)obj;

			iguales = iguales && (atributo.idAtributo.Equals(this.idAtributo));
			iguales = iguales && (atributo.idTipoDato.Equals(this.idTipoDato));
			iguales = iguales && (atributo.longitud.Equals(this.longitud));
			iguales = iguales && (atributo.nombre.Equals(this.nombre));
			iguales = iguales && (atributo.opcional.Equals(this.opcional));

			return iguales;
		}

		public override int GetHashCode()
		{
			return base.GetHashCode ();
		}


	}
}
